module.exports = {
  'extends': './index',
  'parser': 'babel-eslint',
  'plugins': [
    'babel',
    'filenames',
    'jest',
  ],
  'env': {
    'jest/globals': true,
  },
  'rules': {
    'import/prefer-default-export': 'off',
    'filenames/match-exported': 'error',
    'key-spacing': [
      'error',
      {
        'beforeColon': false,
        'afterColon': true,
      },
    ],
    'padding-line-between-statements': [
      'error',
      {
        'blankLine': 'always',
        'prev': '*',
        'next': 'return',
      },
      {
        'blankLine': 'always',
        'prev': [
          'const',
          'let',
          'var',
        ],
        'next': '*',
      },
      {
        'blankLine': 'any',
        'prev': [
          'const',
          'let',
          'var',
        ],
        'next': [
          'const',
          'let',
          'var',
        ],
      },
    ],
    'react/jsx-one-expression-per-line': 0,
    'comma-dangle': [
      'error',
      {
        'arrays': 'always-multiline',
        'objects': 'always-multiline',
        'imports': 'always-multiline',
        'exports': 'always-multiline',
        'functions': 'always-multiline',
      },
    ],
    'max-len': [
      'error',
      {
        'code': 120,
        'ignoreComments': true,
        'ignoreTrailingComments': true,
        'ignoreUrls': true,
        'ignoreStrings': true,
        'ignoreTemplateLiterals': true,
        'ignoreRegExpLiterals': true,
      },
    ],
    'react/jsx-closing-bracket-location': [
      'error',
      'tag-aligned',
    ],
    'react/jsx-closing-tag-location': [
      'error',
      'tag-aligned',
    ],
    'no-this-before-super': 'error',
    'prefer-object-spread': 'error',
    'jsx-quotes': [
      'error',
      'prefer-double',
    ],
    'prefer-const': 'error',
    'react/jsx-curly-spacing': [
      'error',
      {
        'when': 'never',
        'children': true,
      },
    ],
    'eol-last': [
      'error',
      'always',
    ],
    'no-multiple-empty-lines': [
      'error',
      {
        'max': 1,
        'maxEOF': 0,
        'maxBOF': 0,
      },
    ],
    'no-array-constructor': 'error',
    'no-loop-func': 'error',
    'no-new-func': 'error',
    'max-lines': [
      'error',
      1000,
    ],
    'max-depth': [
      'error',
      3,
    ],
    'no-constant-condition': 'error',
    'react/state-in-constructor': 'off',
    'react/jsx-fragments': 'off',
    'react/jsx-props-no-spreading': 'off',
  },
  'overrides': [
    {
      'files': [ 'test/bigtest/**/*' ],
      'rules': {
        'filenames/match-exported': 'off',
        'func-names': 'off',
        'no-unused-expressions': 'off',
        'max-len': 'off',
        'one-var': 'off',
      }
    }
  ]
};
